﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for ModeloEditarMisDatos
/// </summary>
public class ModeloEditarMisDatos
{

    private Conexion conn;
    private String NombreReal;
    private String ApellidoPater;
    private String ApellidoMater;
    private String Telefono;
    private String Mail;
    private String NombreUsuario;

	public ModeloEditarMisDatos()
	{

        conn = new Conexion();
        NombreReal = "";
        ApellidoPater = "";
        ApellidoMater = "";
        Telefono = "";
        Mail = "";
        NombreUsuario = "";
		//
		// TODO: Add constructor logic here
		//
	}

    

    public void setModel(String r, String p, String m, String t, String c, String n)
    {
        NombreReal = r;
        ApellidoPater = p;
        ApellidoMater = m;
        Telefono = t;
        Mail = c;
        NombreUsuario = n;

    }


    public DataTable getMisDatos(String NombreDelUsuario)
    {
        try
        {

            DataTable dt = new DataTable();

            DataColumn c1 = new DataColumn();
            c1.ColumnName = "NombreReal";
            DataColumn c2 = new DataColumn();
            c2.ColumnName = "ApellidoPaterno";
            DataColumn c3 = new DataColumn();
            c3.ColumnName = "ApellidoMaterno";
            DataColumn c4 = new DataColumn();
            c4.ColumnName = "Telefono";
            DataColumn c5 = new DataColumn();
            c5.ColumnName = "Mail";

            dt.Columns.Add(c1);
            dt.Columns.Add(c2);
            dt.Columns.Add(c3);
            dt.Columns.Add(c4);
            dt.Columns.Add(c5);

            String query = "SELECT USUARIO.NOMBREREALUSUARIO , USUARIO.APELLIDOPATERNOUSUARIO ,  USUARIO.APELLIDOMATERNOUSUARIO , USUARIO.TELEFONOCONTACTOUSUARIO , USUARIO.CORREOCONTACTOUSUARIO " +
                            "FROM USUARIO WHERE (USUARIO.NOMBREUSUARIO = '" + NombreDelUsuario + "' ) ";

            bool connected = conn.iniciarConexion();

            if (connected == true)
            {
                SqlDataReader rows = null;
                SqlCommand comm = new SqlCommand(query, conn.getConn());
                rows = comm.ExecuteReader();
                while (rows.Read())
                {
                    DataRow r = dt.NewRow();
                    r["NombreReal"] = rows[0].ToString();
                    r["ApellidoPaterno"] = rows[1].ToString();
                    r["ApellidoMaterno"] = rows[2].ToString();
                    r["Telefono"] = rows[3].ToString();
                    r["Mail"] = rows[4].ToString();
                    dt.Rows.Add(r);
                }

                conn.terminarConexion();

                return dt;
            }

            else
            {

                conn.terminarConexion();
                return null;
            }
        }

        catch (Exception exc)
        {

            return null;
        }

    }

    public String validarModelo()
    {
        String errores = "";
        ValidacionRegex val = new ValidacionRegex();

        if (!val.validarString(NombreReal, 30))
        {
            errores = errores + "Nombre: Ingresar solo letras. No se permiten m&aacute;s de 30 caracteres" + "<br />";
        }
        if (!val.validarString(ApellidoPater, 30))
        {
            errores = errores + "Apellido paterno: Ingresar solo letras. No se permiten m&aacute;s de 30 caracteres" + "<br />";
        }
        if (!val.validarString(ApellidoMater, 30))
        {
            errores = errores + "Apellido materno: Ingresar solo letras. No se permiten m&aacute;s de 30 caracteres" + "<br />";
        }
        if (!val.validarMail(Mail))
        {
            errores = errores + "Mail de contacto: Formato incorrecto" + "<br />";
        }
        if (!val.validarTelContacto(Telefono))
        {
            errores = errores + "Celular de contacto: Ingresar como m&aacute;ximo 8 d&iacute;gitos sin guiones" + "<br />";
        }

        return errores;

    }
    public String editarDatos(String NombreDelUsuario)
    {
        try
        {
            bool connected = conn.iniciarConexion();

            if (connected == true)
            {

                //SqlCommand comm = new SqlCommand("UPDATE USUARIO SET  (NOMBREREALUSUARIO  , APELLIDOPATERNOUSUARIO  , APELLIDOMATERNOUSUARIO , TELEFONOCONTACTOUSUARIO , CORREOCONTACTOUSUARIO) VALUES ('" + NombreReal + "' , '" + ApellidoPater + "' , '" + ApellidoMater + "' , '" + Telefono + "' , '" + Mail + "' ) WHERE USUARIO.NOMBREUSUARIO = '" + idUsuario + "'",
                  //                           conn.getConn());
                
                SqlCommand comm = new SqlCommand("UPDATE USUARIO SET  NOMBREREALUSUARIO = '" + NombreReal + "' , APELLIDOPATERNOUSUARIO = '" + ApellidoPater + "' , APELLIDOMATERNOUSUARIO = '" + ApellidoMater + "' , TELEFONOCONTACTOUSUARIO = '" + Telefono + "' , CORREOCONTACTOUSUARIO = '" + Mail + "'  WHERE USUARIO.NOMBREUSUARIO = '" + NombreDelUsuario + "'",
                                               conn.getConn());

                int result = comm.ExecuteNonQuery();


                if (result == 0)
                {
                    conn.terminarConexion();
                    return "-1";
                }

                conn.terminarConexion();
                return "1";

            }
            else
            {
                conn.terminarConexion();
                return "-1";
            }
        }

        catch (Exception exc)
        {
            return "-1";
        }
        
    }
}